/** B3DM 文件头结构（共28字节） */
export interface B3dmHeader {
    magic: string;          // 4字节，固定为"b3dm"
    version: number;        // 4字节，版本号（通常为1）
    byteLength: number;     // 4字节，文件总长度
    featureTableJSONByteLength: number; // 4字节，特征表JSON长度
    featureTableBinaryByteLength: number; // 4字节，特征表二进制长度
    batchTableJSONByteLength: number; // 4字节，批量表JSON长度
    batchTableBinaryByteLength: number; // 4字节，批量表二进制长度
}

/** B3DM 完整数据结构 */
export interface B3dmData {
    header: B3dmHeader;
    featureTable: {         // 特征表（地理信息等）
      json: Record<string, any>;
      binary?: Uint8Array;
    };
    batchTable?: {          // 批量表（模型属性等，可选）
      json: Record<string, any>;
      binary?: Uint8Array;
    };
    glbData: Uint8Array;    // 内嵌的GLB模型数据
}

/** 构建B3DM的选项 */
export interface B3dmBuildOptions {
    glbData: Uint8Array;    // 输入的GLB二进制数据
    featureTableJSON?: Record<string, any>; // 特征表JSON
    featureTableBinary?: Uint8Array; // 特征表二进制
    batchTableJSON?: Record<string, any>; // 批量表JSON
    batchTableBinary?: Uint8Array; // 批量表二进制
}